'''
* This is the projet for Brtc LlmOps Platform
* @Author Leon-liao <liaosiliang@alltman.com>
* @Description //TODO 
* @File: 4_reuse_of_prompt.py
* @Time: 2025/10/22
* @All Rights Reserve By Brtc
'''
from langchain_core.prompts import PromptTemplate,PipelinePromptTemplate

""" 
提示词模板复用代码 
"""
full_template = PromptTemplate.from_template(""" 
{instruction}

{example}

{start}
""")
#描述模板
instruction_prompt = PromptTemplate.from_template("你正在模拟{person}")

#示例模板
example_prompt = PromptTemplate.from_template(""" 
下面是一个交互例子:
Q:{example_q}
A:{example_a}
""")

#开始提示词模板
start_prompt = PromptTemplate.from_template(""" 
现在你是一个真实的人,请回答用户问题：
Q:{input}
A:
""")

pipeline_prompt = [
    ("instruction", instruction_prompt),
    ("example", example_prompt),
    ("start", start_prompt)
]

pip_prompt_final = PipelinePromptTemplate(
    final_prompt = full_template,
    pipeline_prompts = pipeline_prompt
)

print(pip_prompt_final.invoke({
    "person":"雷军",
    "example_q":"你最喜欢的汽车是什么？",
    "example_a":"小米su7",
    "input":"你最喜欢的手机是什么？"
}).to_string())